/*
 * Chute.java
 *
 * Criado em 20 de Agosto de 2007, 18:02
 */

package codebreaker.protocolo;

import java.nio.ByteBuffer;

/**
 * Classe que define um pacote de rede do protocolo Code Breaker.
 * O pacote CHUTE é JOGADOR-JOGADOR e utilizado durante o jogo para
 * trocar as tentativas de acerto e para trocar as senhas iniciais.
 *
 * @author Rodrigo
 */
public class Chute extends Pacote {
    
    public static final int ID = 5;
    public static final int TAMANHO = Constantes.TAMANHO_CHUTE;
    
    private byte chute[];
    
    /**
     * Cria uma nova instância de Chute
     */
    public Chute() {
	super();
    }
    
    /**
     * Cria um pacote a partir de um conjunto de bytes
     * @param bytes Conjunto de bytes
     * @param withID Sinaliza se os bytes tem o id do pacote
     */
    public Chute(byte bytes[], boolean withID) {
	super(bytes, withID);
    }
    
    /**
     * Cria uma nova instância de Chute
     * @param chute Valor da senha
     */
    public Chute(byte[] chute) {
	this();
	this.chute = chute;
    }
    
    protected void fromBytes(ByteBuffer buffer) {
	chute = new byte[Constantes.TAMANHO_CHUTE];
	buffer.get(chute);
    }
    
    public byte getID() {
	return ID;
    }
    
    public int getTamanho() {
	return TAMANHO;
    }
    
    protected void writeBytes(ByteBuffer buffer) {
	buffer.put(chute);
    }
     
    public byte[] getChute() {
	return chute;
    }
    
    /**
     * Retorna uma representacao do pacote
     * em texto(string)
     * @return Texto representando o pacote
     */
    public String toString() {
	String ret = "";
	
	for (int c = 0; c < chute.length; c++)
	    ret = ret.concat(chute[c] + " ");
	
	return ret;
    }
}
